/*
 * ListenerEscritorio.java
 *
 * Created on 15 de septiembre de 2005, 1:08
 *
 * To change this template, choose Tools | Options and locate the template under
 * the Source Creation and Management node. Right-click the template and choose
 * Open. You can then make changes to the template in the Source Editor.
 */

package fmap.gui.actionListener;

import fmap.DatosCompartidos;
import fmap.actions.mapF.searchMapF.SearchMapFAction;
import fmap.gui.AcercaDe;
import fmap.gui.JFrameAdminCat;
import fmap.gui.JFrameAdminCollection;
import fmap.gui.JFrameGroupFile;
import fmap.gui.help.JFrameHelp;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import fmap.gui.JFrameNewMapF;
import fmap.gui.JFrameSearchAdvanced;
import fmap.model.Cat;
import fmap.model.Collection;
import fmap.model.MapF;
import fmap.model.Node;
import java.util.Vector;
import javax.swing.JOptionPane;

/**
 *
 * @author javi
 */
public class ListenerJFrameMain implements ActionListener
{
    
    public ListenerJFrameMain ()
    {
    }
    
    public void actionPerformed (ActionEvent ae)
    {
        
        if( ae.getActionCommand ().equals ("adminCollection") )
        {
            DatosCompartidos.setJFrameAdminCollection ( new JFrameAdminCollection ());
            
            
            DatosCompartidos.getJFrameAdminCollection ().getTextFNewCollection ().setText ( DatosCompartidos.getCollectionActual ().getName () );
            DatosCompartidos.getJFrameAdminCollection ().getTxtFComentNewCollection ().setText ( DatosCompartidos.getCollectionActual ().getDesc () );
            
            
            DatosCompartidos.getJFrameAdminCollection ().getListCollection ().setSelectedValue ( DatosCompartidos.getCollectionActual (), true);
            
            java.awt.CardLayout layout = (java.awt.CardLayout)DatosCompartidos.getJFrameAdminCollection ().getPanel3 ().getLayout ();
            layout.show (DatosCompartidos.getJFrameAdminCollection ().getPanel3 (),"card3");
            
        }
        else if( ae.getActionCommand ().equals ("newMapF"))
        {
            DatosCompartidos.setJFrameNewMapF ( new JFrameNewMapF () );
        }
        else if( ae.getActionCommand ().equals ("search"))
        {
            if( DatosCompartidos.getJFrameMain ().getTxtBuscador ().getText ().length () >= 3 )
            {
                
                // Buscamos desde el escritorio en todos los mapas de ficheros de la coleccion actual
                // diferenciando si hemos de distinguir entre mayusculas y minusculas
                new fmap.actions.collection.searchCollection.SearchCollectionAction ( DatosCompartidos.getJFrameMain ().getCheckBoxCase ().isSelected () );
                
            }
            else
            {
                JOptionPane.showMessageDialog (DatosCompartidos.getJFrameMain (),
                        "Debe insertar al menos 3 caracteres para realizar la busqueda",
                        "ERROR",
                        JOptionPane.ERROR_MESSAGE);
            }
        }
        else if( ae.getActionCommand ().equals ("openCollection") )
        {
            // Abrimos una coleccion desde el escritorio
            Object[] objectSelect = DatosCompartidos.getJFrameMain ().getComboCollection ().getSelectedObjects ();
            Collection collectionSelect = (Collection)objectSelect[0];
            
            new fmap.actions.collection.OpenCollectionAction ( collectionSelect );
        }
        else if( ae.getActionCommand ().equals ("searchAdvanced") )
        {
            JFrameSearchAdvanced jFrameSearchAdvanced = new JFrameSearchAdvanced ();
            jFrameSearchAdvanced.setVisible (true);
            DatosCompartidos.setJFrameSearchAdvanced ( jFrameSearchAdvanced );
        }
        else if( ae.getActionCommand ().equals ("saveNode") )
        {
            // Guardamos la información del nodo actual

            Node nodeSave = DatosCompartidos.getNodeActual ();

            nodeSave.setIcon ( DatosCompartidos.getPanelRight ().getIcon () );
            nodeSave.setKeyWord ( DatosCompartidos.getPanelRight ().getTextPKey ().getText () );
            nodeSave.setDescrip ( DatosCompartidos.getPanelRight ().getTextPComent ().getText ());
            
            new fmap.dao.NodeDao ().updateNode ( nodeSave, nodeSave.getIdTable () );
        }
        else if( ae.getActionCommand ().equals ("saveMapF") )
        {
            // Guardamos la información del mapa de ficheros actual, desde el panel derecho
            if( DatosCompartidos.getPanelRight ().getTextFMapFTitulo ().getText ().trim ().length () > 0 )
            {
                MapF mapFSave = DatosCompartidos.getMapFActual ();
                
                mapFSave.setName ( DatosCompartidos.getPanelRight ().getTextFMapFTitulo ().getText ());
                mapFSave.setDesc ( DatosCompartidos.getPanelRight ().getTextFMapFDesc ().getText ());
                mapFSave.setIcon ( DatosCompartidos.getPanelRight ().getIcon () );
                
                // Obtenemos y asignamos la categoria seleccionada
                Cat catSelect = (Cat)DatosCompartidos.getPanelRight ().getComboBoxCatMapF ().getSelectedItem ();
                mapFSave.setIdCat ( catSelect.getId () );
                
                
                new fmap.dao.MapFDao ().updateMapF ( mapFSave );
            }
            else
            {
                JOptionPane.showMessageDialog (DatosCompartidos.getJFrameMain (),
                        "Debe insertar el nombre del volumen de ficheros",
                        "ERROR",
                        JOptionPane.ERROR_MESSAGE);
            }
        }
        else if( ae.getActionCommand ().equals ("searchMapF") )
        {
            if( DatosCompartidos.getJFrameMain ().getTextFSearchMapF ().getText ().length () > 0 )
            {
                // Buscamos en un solo mapa de ficheros
                MapF mapF = (MapF)DatosCompartidos.getJTreeResultSearch ().getModel ().getRoot ();
                
                new SearchMapFAction ( mapF, DatosCompartidos.getJFrameMain ().getCheckBoxCaseMapF ().isSelected () );
            }
            else
            {
                JOptionPane.showMessageDialog (DatosCompartidos.getJFrameMain (),
                        "Debe insertar algun caracter para realizar la busqueda",
                        "ERROR",
                        JOptionPane.ERROR_MESSAGE);
            }
        }
        else if( ae.getActionCommand ().equals ("typeResultSearch") )
        {
            if( DatosCompartidos.getJFrameMain ().getRadioButtonArbol ().isSelected () == true )
            {
                //Mostramos los resultados de la busqueda como un arbol
                DatosCompartidos.getJFrameMain ().getJspResultSearch ().getViewport ().add (DatosCompartidos.getJTreeResultSearch (),1);
            }
            else
            {
                // Mostramos los resultados de la busqueda como una tabla
                Vector v = new fmap.actions.mapF.GetAllNodeResultSearchForTable ().getAllNodeResultSearchForTable ( DatosCompartidos.getMapFActual ().getId () );
                
                DatosCompartidos.getJTablePersonalResultSearch ().setData ( v );
                
                DatosCompartidos.getJFrameMain ().getJspResultSearch ().getViewport ().add ( DatosCompartidos.getJTablePersonalResultSearch (), 1);
            }
        }

        else if( ae.getActionCommand ().equals ("buttonCerrar"))
        {
            new JFrameGroupFile ();
        }
        else if( ae.getActionCommand ().equals ("menuItemCatMapF"))
        {
            new JFrameAdminCat ();
        }
        else if( ae.getActionCommand ().equals ("menuItemGroupFile"))
        {
            new JFrameGroupFile ();
        }
        
        else if( ae.getActionCommand ().equals ("exit") )
        {
            System.exit (0);
        }
        else if( ae.getActionCommand ().equals ("acercaDe") )
        {
            new AcercaDe ();
        }
        else if( ae.getActionCommand ().equals ("Contents") )
        {
            new JFrameHelp ();
        }
    }
}